package com.ityedao.IO字节流.资源释放;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyTest {
    public static void main(String[] args) {
        // 需求：复制照片
        try (
                // 1、创建一个字节输入流管道与源文件接通
                FileInputStream is = new FileInputStream("src\\ityedao3.txt");
                // 2、创建一个字节输出流管道与源文件接通
                FileOutputStream os = new FileOutputStream("src\\ityedao3-copy.txt"); // 一定要写文件名！！！！

                // 注意：这里只能防止资源对象。（流对象）
                // int age = 21; ×
                // 什么是资源呢？资源都是会实现AutoCloseable接口，资源都会有一个close方法，
                // 并且资源放到这里后，用完之后，会被自动调用其close方法完成资源的释放操作。
                MyConnection conn = new MyConnection();
        ) {
            // 3、创建一个字节数组，负责转移字节数据
            byte[] buffer = new byte[1024]; // 1KB.
            // 4、从字节输入流中读取字节数据，写出去到字节输出流中。读多少写出去多少。
            int len; // 记住每次读取了多少个字符
            while ((len = is.read(buffer)) != -1) {
                os.write(buffer, 0, len);
            }
            System.out.println(conn);
            System.out.println("复制完成！！");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
